<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.10"/>
<title>axipmon: Main Page</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
<link href="HTML_custom.css" rel="stylesheet" type="text/css"/>
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
 <tbody>
 <tr style="height: 56px;">
  <td id="projectlogo"><img alt="Logo" src="xlogo_bg.gif"/></td>
  <td id="projectalign" style="padding-left: 0.5em;">
   <div id="projectname">axipmon
   </div>
   <div id="projectbrief">Xilinx SDK Drivers API Documentation</div>
  </td>
 </tr>
 </tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.10 -->
  <div id="navrow1" class="tabs">
    <ul class="tablist">
      <li class="current"><a href="index.html"><span>Overview</span></a></li>
      <li><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
      <li><a href="globals.html"><span>APIs</span></a></li>
      <li><a href="files.html"><span>File&#160;List</span></a></li>
    </ul>
  </div>
</div><!-- top -->
<div class="header">
  <div class="headertitle">
<div class="title">axipmon Documentation</div>  </div>
</div><!--header-->
<div class="contents">
<div class="textblock"><p>The <a class="el" href="struct_x_axi_pmon.html" title="The driver&#39;s instance data. ">XAxiPmon</a> driver supports the Xilinx AXI Performance Monitor device.The AXI Performance Monitor device provides following features:</p>
<p>Configurable number of Metric Counters and Incrementers Computes performance metrics for Agents connected to monitor slots (Up to 8 slots)</p>
<p>The following Metrics can be computed:</p>
<p>Metrics computed for an AXI4 MM agent: Write Request Count: Total number of write requests by/to the agent. Read Request Count: Total number of read requests given by/to the agent. Read Latency: It is defined as the time from the start of read address transaction to the beginning of the read data service. Write Latency: It is defined as the period needed a master completes write data transaction, i.e. from write address transaction to write response from slave. Write Byte Count: Total number of bytes written by/to the agent. This metric is helpful when calculating the throughput of the system. Read Byte Count: Total number of bytes read from/by the agent. Average Write Latency: Average write latency seen by the agent. It can be derived from total write latency and the write request count. Average Read Latency: Average read latency seen by the agent. It can be derived from total read latency and the read request count. Master Write Idle Cycle Count: Number of idle cycles caused by the masters during write transactions to the slave. Slave Write Idle Cycle Count: Number of idle cycles caused by this slave during write transactions to the slave. Master Read Idle Cycle Count: Number of idle cycles caused by the master during read transactions to the slave. Slave Read Idle Cycle Count: Number of idle cycles caused by this slave during read transactions to the slave.</p>
<p>Metrics computed for an AXI4-Stream agent:</p>
<p>Transfer Cycle Count: Total number of writes by/to the agent. Data Byte Count: Total number of data bytes written by/to the agent. This metric helps in calculating the throughput of the system. Position Byte Count: Total number of position bytes transferred. Null Byte Count: Total number of null bytes transferred. Packet Count: Total number of packets transferred.</p>
<p>There are three modes : Advanced, Profile and Trace.</p><ul>
<li>Advanced mode has 10 Mertic Counters, Sampled Metric Counters, Incrementors and Sampled Incrementors.</li>
<li>Profile mode has only 47 Metric Counters and Sampled Metric Counters.</li>
<li>Trace mode has no Counters. User should refer to the hardware device specification for detailed information about the device.</li>
</ul>
<p>This header file contains the prototypes of driver functions that can be used to access the AXI Performance Monitor device.</p>
<p><b> Initialization and Configuration </b></p>
<p>The device driver enables higher layer software (e.g., an application) to communicate to the AXI Performance Monitor device.</p>
<p><a class="el" href="group__axipmon__v6__3.html#ga86fa6ac2c8d22145e2eb5c519ced7e06" title="This function initializes a specific XAxiPmon device/instance. ">XAxiPmon_CfgInitialize()</a> API is used to initialize the AXI Performance Monitor device. The user needs to first call the <a class="el" href="group__axipmon__v6__3.html#ga93ed0a2b99a2e74dc0da62ed674fd2bb" title="Functions in xaxipmon_sinit.c. ">XAxiPmon_LookupConfig()</a> API which returns the Configuration structure pointer which is passed as a parameter to the <a class="el" href="group__axipmon__v6__3.html#ga86fa6ac2c8d22145e2eb5c519ced7e06" title="This function initializes a specific XAxiPmon device/instance. ">XAxiPmon_CfgInitialize()</a> API.</p>
<p><b>Interrupts</b></p>
<p>The AXI Performance Monitor does not support Interrupts</p>
<p><b> Virtual Memory </b></p>
<p>This driver supports Virtual Memory. The RTOS is responsible for calculating the correct device base address in Virtual Memory space.</p>
<p><b> Threads </b></p>
<p>This driver is not thread safe. Any needs for threads or thread mutual exclusion must be satisfied by the layer above this driver.</p>
<p><b> Asserts </b></p>
<p>Asserts are used within all Xilinx drivers to enforce constraints on argument values. Asserts can be turned off on a system-wide basis by defining, at compile time, the NDEBUG identifier. By default, asserts are turned on and it is recommended that users leave asserts on during development.</p>
<p><b> Building the driver </b></p>
<p>The <a class="el" href="struct_x_axi_pmon.html" title="The driver&#39;s instance data. ">XAxiPmon</a> driver is composed of several source files. This allows the user to build and link only those parts of the driver that are necessary.</p>
<p><b> Limitations of the driver </b></p>
<p><br />
<br />
</p>
<pre></pre><pre>MODIFICATION HISTORY:</pre><pre>Ver   Who    Date     Changes
----- -----  -------- -----------------------------------------------------
1.00a bss    02/27/12 First release
2.00a bss    06/23/12 Updated to support v2_00a version of IP.
3.00a bss    09/03/12 To support v2_01_a version of IP:
		Deleted XAxiPmon_SetAgent, XAxiPmon_GetAgent APIs and
		added XAPM_FLAG_EVENT, XAPM_FLAG_EVNTSTAR,
		XAPM_FLAG_EVNTSTOP.
		Deleted XAxiPmon_SetAgent, XAxiPmon_GetAgent APIs and
		modified XAxiPmon_SetMetrics, XAxiPmon_GetMetrics APIs
		in <a class="el" href="xaxipmon_8c.html">xaxipmon.c</a>
		Deleted XAPM_AGENT_OFFSET Macro in <a class="el" href="xaxipmon__hw_8h.html">xaxipmon_hw.h</a>
3.01a bss    10/25/12 To support new version of IP:
		Added XAPM_MCXLOGEN_OFFSET macros in <a class="el" href="xaxipmon__hw_8h.html">xaxipmon_hw.h</a>.
		Added XAxiPmon_SetMetricCounterCutOff,
		XAxiPmon_GetMetricCounterCutOff,
		XAxiPmon_EnableExternalTrigger and
		XAxiPmon_DisableExternalTrigger APIs in <a class="el" href="xaxipmon_8c.html">xaxipmon.c</a>
		Modified XAxiPmon_SetMetrics and XAxiPmon_GetMetrics
		(CR #683746) in <a class="el" href="xaxipmon_8c.html">xaxipmon.c</a>
		Added XAxiPmon_EnableEventLog,
		XAxiPmon_DisableMetricsCounter,
		XAxiPmon_EnableMetricsCounter APIs in <a class="el" href="xaxipmon_8c.html">xaxipmon.c</a> to
		replace macros in this file.
		Added XAPM_FLAG_XXX macros.
		Added XAxiPmon_StartCounters and XAxiPmon_StopCounters
		APIs (CR #683799).
		Added XAxiPmon_StartEventLog and XAxiPmon_StopEventLog
		APIs (CR #683801).
		Added XAxiPmon_GetMetricName API (CR #683803).
		Deleted XAxiPmon_SetAgent, XAxiPmon_GetAgent
		declarations (CR #677337)
4.00a bss    01/17/13 To support new version of IP:
		Added XAPM_METRIC_SET_12 to XAPM_METRIC_SET_15 macros.
		Added XAxiPmon_SetLogEnableRanges,
			XAxiPmon_GetLogEnableRanges,
		XAxiPmon_EnableMetricCounterTrigger,
		XAxiPmon_DisableMetricCounterTrigger,
		XAxiPmon_EnableEventLogTrigger,
		XAxiPmon_DisableEventLogTrigger,
		XAxiPmon_SetWriteLatencyId,
		XAxiPmon_SetReadLatencyId,
		XAxiPmon_GetWriteLatencyId,
		XAxiPmon_GetReadLatencyId APIs and removed
		XAxiPmon_SetMetricCounterCutOff,
		XAxiPmon_GetMetricCounterCutOff,
		XAxiPmon_EnableExternalTrigger and
		XAxiPmon_DisableExternalTrigger APIs in <a class="el" href="xaxipmon_8c.html">xaxipmon.c</a>
		Added XAPM_LATENCYID_OFFSET,
		XAPM_CR_EVTLOG_EXTTRIGGER_MASK,
		XAPM_LATENCYID_RID_MASK and XAPM_LATENCYID_WID_MASK in
		<a class="el" href="xaxipmon__hw_8h.html">xaxipmon_hw.h</a>
5.00a bss   08/26/13  To support new version of IP:
		XAxiPmon_SampleMetrics Macro.
		Modified XAxiPmon_CfgInitialize, Assert functions
		Added XAxiPmon_GetMetricCounter,
		XAxiPmon_SetSampleInterval, XAxiPmon_GetSampleInterval,
		XAxiPmon_SetWrLatencyStart, XAxiPmon_SetWrLatencyEnd,
		XAxiPmon_SetRdLatencyStart, XAxiPmon_SetRdLatencyEnd,
		XAxiPmon_GetWrLatencyStart, XAxiPmon_GetWrLatencyEnd,
		XAxiPmon_GetRdLatencyStart, XAxiPmon_GetRdLatencyEnd,
		XAxiPmon_SetWriteIdMask, XAxiPmon_SetReadIdMask,
		XAxiPmon_GetWriteIdMask and XAxiPmon_GetReadIdMask APIs
		Renamed :
		XAxiPmon_SetWriteLatencyId to
		XAxiPmon_SetWriteId, XAxiPmon_SetReadLatencyId to
		XAxiPmon_SetReadId, XAxiPmon_GetWriteLatencyId to
		XAxiPmon_GetWriteId and XAxiPmon_SetReadLatencyId to
		XAxiPmon_GetReadId. in <a class="el" href="xaxipmon_8c.html">xaxipmon.c</a>
		Added Macros XAPM_MC10_OFFSET to XAPM_MC47_OFFSET,
		XAPM_SMC10_OFFSET to XAPM_SMC47_OFFSET,
		XAPM_IDMASK_OFFSET, XAPM_CR_IDFILTER_ENABLE_MASK,
		XAPM_CR_WRLATENCY_START_MASK,
		XAPM_CR_WRLATENCY_END_MASK,
		XAPM_CR_RDLATENCY_START_MASK,
		XAPM_CR_RDLATENCY_END_MASK and
		XAPM_MAX_COUNTERS_PROFILE.
		Renamed:
		XAPM_LATENCYID_OFFSET to XAPM_ID_OFFSET,
		XAPM_LATENCYID_RID_MASK to XAPM_ID_RID_MASK,
		XAPM_LATENCYID_WID_MASK to XAPM_ID_WID_MASK.
		in <a class="el" href="xaxipmon__hw_8h.html">xaxipmon_hw.h</a>.
		Modified driver tcl to generate new parameters
		ScaleFactor, ModeProfile, ModeTrace and ModeAdvanced
		in Config structure.
6.0   adk  19/12/13 Updated as per the New Tcl API's
6.1   adk  16/04/14 Updated the driver tcl for the newly added parameters in
		      The Axi pmon IP.
6.2   bss  04/21/14   Updated XAxiPmon_CfgInitialize in <a class="el" href="xaxipmon_8c.html">xaxipmon.c</a> to Reset
		counters and FIFOs based on Modes(CR#782671). And if
		both profile and trace modes are present set mode as
		Advanced.
6.2	bss  03/02/15	To support Zynq MP APM:
					Added Is32BitFiltering in <a class="el" href="struct_x_axi_pmon___config.html" title="This typedef contains configuration information for the AXI Performance Monitor device. ">XAxiPmon_Config</a> structure.
					Updated XAxiPmon_SetWriteId, XAxiPmon_SetReadId,
					XAxiPmon_GetWriteId, XAxiPmon_GetReadId
					XAxiPmon_SetWriteIdMask, XAxiPmon_SetReadIdMask
					XAxiPmon_GetWriteIdMask, XAxiPmon_GetReadIdMask
					functions in <a class="el" href="xaxipmon_8c.html">xaxipmon.c</a>.
					Added XAPM_RID_OFFSET and XAPM_RIDMASK_OFFSET in
					<a class="el" href="xaxipmon__hw_8h.html">xaxipmon_hw.h</a></pre><pre>6.3	kvn  07/02/15	Modified code according to MISRA-C:2012 guidelines.
</pre> </div></div><!-- contents -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
  <ul>
    <li class="footer">Copyright &copy; 2015 Xilinx Inc. All rights reserved.</li>
  </ul>
</div>
</body>
</html>
